home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1996-12-23 | 1.1 KB | 48 lines | [TEXT/3PRM] |
- implementation module _SystemEnum
-
- // ****************************************************************************************
- // Concurrent Clean Standard Library Module Version 1.1
- // Copyright 1995 University of Nijmegen
- // ****************************************************************************************
-
-
- import StdEnv
-
- _lteq a b :== not (b < a)
- _minus a b :== a - b
-
- _from :: a -> [a] | IncDec, Ord a
- _from n
- = [n : _from (inc n)]
-
- _from_to :: !a !a -> [a] | Enum a
- _from_to n e
- | n <= e
- = [n : _from_to (inc n) e]
- = []
-
- _from_then :: a a -> [a] | Enum a
- _from_then n1 n2
- = [n1 : _from_by n2 (n2-n1)]
- where
- _from_by :: a a -> [a] | Enum a
- _from_by n s
- = [n : _from_by (n+s) s]
-
- _from_then_to :: !a !a !a -> [a] | Enum a
- _from_then_to n1 n2 e
- | n1 <= n2
- = _from_by_to n1 (n2-n1) e
- = _from_by_down_to n1 (n2-n1) e
- where
- _from_by_to :: !a !a !a -> [a] | Enum a
- _from_by_to n s e
- | n<=e
- = [n : _from_by_to (n+s) s e]
- = []
- _from_by_down_to :: !a !a !a -> [a] | Enum a
- _from_by_down_to n s e
- | n>=e
- = [n : _from_by_down_to (n+s) s e]
- = []
-